#include<iostream>
#include<stack>
#include<vector>
#include <microhttpd.h>
#include<pugixml.hpp>

using namespace std;
class MinStack {
private:
    stack<int> normal_stack;
    stack<int> mini_stack;
public:
    MinStack() {

    }

    void push(int val) {
        if (mini_stack.empty())
            mini_stack.push(val);
        else
        {
            if (val <= mini_stack.top())
                mini_stack.push(val);
        }
        normal_stack.push(val);
    }

    void pop() {
        if (normal_stack.top() == mini_stack.top())
            mini_stack.pop();
        normal_stack.pop();
        
    }

    int top() {
        return normal_stack.top();
    }

    int getMin() {
        return mini_stack.top();
    }
};

/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack* obj = new MinStack();
 * obj->push(val);
 * obj->pop();
 * int param_3 = obj->top();
 * int param_4 = obj->getMin();
 */
int main()
{


	return 0;
}